'''
为了保证代码的正常运行，python对正在运行过程中出现不正常情况，进行处理，这种处理方式叫异常处理
python 将各种不正常情况进行了分类，我们就可以针对不同情况进行不同处理
try:
    可能出现不正常情况的代码
except 异常类型1:
    对类型1的异常进行处理（打印提示）
except 异常类型2:
    对类型2的异常进行处理
....
finally:
    最终执行的代码（不管代码会不会出现问题，都要执行的）

'''

l = [2,3,5]
# print(l[9])  #IndexError: list index out of range 异常类型：异常情况说明
# a = 2/0     # ZeroDivisionError: division by zero
# int("7a") # ValueError: invalid literal for int() with base 10: '7a'

try:
    l1 = [2,3,5]
    n = int(input("数字"))
    print(l1[n])
    m = 1
    print(5/m)
    int("*")
except ZeroDivisionError as e1:
    print(f"0不能为除数:{e1}")
except IndexError as e1:
    print(e1)
except Exception:
    print("出错啦")
finally:
    print("最终一定要执行的代码")

print("-----我是执行完异常处理后的代码--------")

# try 代码  代码出问题
# 1）try下面代码不执行 2)找对应的except后面的异常分类执行
# 3）没找到分类，找Exception 4）如果没有Exception 报错（代码终止）

